package com.starlink.client.ras.response;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

@NoArgsConstructor
@Data
public class GoodsListEvidenceResponse implements Serializable {
    private static final long serialVersionUID = -2559967220775115160L;

    @JsonProperty("rasGoodsListPage")
    private RasGoodsListPageDTO rasGoodsListPage;
    @JsonProperty("canBeAssigned")
    private Boolean canBeAssigned;

    @NoArgsConstructor
    @Data
    public static class RasGoodsListPageDTO {
        @JsonProperty("records")
        private List<RecordsDTO> records;
        @JsonProperty("total")
        private Integer total;
        @JsonProperty("size")
        private Integer size;
        @JsonProperty("current")
        private Integer current;
        @JsonProperty("orders")
        private List<?> orders;
        @JsonProperty("optimizeCountSql")
        private Boolean optimizeCountSql;
        @JsonProperty("searchCount")
        private Boolean searchCount;
        @JsonProperty("countId")
        private Object countId;
        @JsonProperty("maxLimit")
        private Object maxLimit;
        @JsonProperty("pages")
        private Integer pages;

        @NoArgsConstructor
        @Data
        public static class RecordsDTO {
            @JsonProperty("id")
            private Integer id;
            @JsonProperty("classify")
            private String classify;
            @JsonProperty("platformId")
            private Integer platformId;
            @JsonProperty("platformName")
            private String platformName;
            @JsonProperty("projectId")
            private Integer projectId;
            @JsonProperty("projectName")
            private String projectName;
            @JsonProperty("companyId")
            private Integer companyId;
            @JsonProperty("companyName")
            private String companyName;
            @JsonProperty("miniProgramName")
            private Object miniProgramName;
            @JsonProperty("miniProgramId")
            private Object miniProgramId;
            @JsonProperty("productJumpReAddress")
            private Object productJumpReAddress;
            @JsonProperty("itemId")
            private String itemId;
            @JsonProperty("productName")
            private String productName;
            @JsonProperty("productSpecifications")
            private String productSpecifications;
            @JsonProperty("mainImageOfTheProduct")
            private String mainImageOfTheProduct;
            @JsonProperty("associateChannels")
            private Object associateChannels;
            @JsonProperty("certificatePresentation")
            private Object certificatePresentation;
            @JsonProperty("productDetails")
            private Object productDetails;
            @JsonProperty("remark")
            private Object remark;
            @JsonProperty("attributionId")
            private Integer attributionId;
            @JsonProperty("attributionName")
            private String attributionName;
            @JsonProperty("thirdPartyItemId")
            private Object thirdPartyItemId;
            @JsonProperty("belongFlag")
            private Integer belongFlag;
            @JsonProperty("auditStatus")
            private String auditStatus;
            @JsonProperty("delFalg")
            private Integer delFalg;
            @JsonProperty("region")
            private Object region;
            @JsonProperty("createId")
            private Integer createId;
            @JsonProperty("updateId")
            private Integer updateId;
            @JsonProperty("createTime")
            private String createTime;
            @JsonProperty("updateTime")
            private String updateTime;
            @JsonProperty("thirdPartyProductId")
            private Integer thirdPartyProductId;
            @JsonProperty("formulaProductsId")
            private Object formulaProductsId;
            @JsonProperty("level")
            private Object level;
            @JsonProperty("formulationRatio")
            private Object formulationRatio;
            @JsonProperty("btnTitleA")
            private String btnTitleA;
            @JsonProperty("btnTitleARepurchase")
            private String btnTitleARepurchase;
            @JsonProperty("productSpecificationsB")
            private String productSpecificationsB;
            @JsonProperty("products")
            private Integer products;
            @JsonProperty("probability")
            private Integer probability;
            @JsonProperty("productSpecificationsC")
            private Object productSpecificationsC;
            @JsonProperty("byLike")
            private Object byLike;
            @JsonProperty("originName")
            private Object originName;
            @JsonProperty("origin")
            private Object origin;
            @JsonProperty("customOriginName")
            private Object customOriginName;
            @JsonProperty("ratio")
            private Object ratio;
            @JsonProperty("productsId")
            private Object productsId;
        }
    }
}
